package com.xbongbong.paas.service.field;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.PaasFormDataEntity;
import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.toolbox.exception.XbbException;

import java.util.List;

/**
 * @author 吴峰
 * @date 2022/04/01 9:54
 */
public interface FieldAnalysisHandler {

    /**
     * 字段类型
     * @return
     */
    List<Integer> fieldType();

    /**
     * 获取这个字段的在列表显示的值
     * @param fieldAttrEntity
     * @param paasFormDataEntity 这个实体，只需要存入id，createId, departmentId, addTime, updateTime, serialNo等系统字段，请勿使用copyBean拷贝这些使用，可使用构造参数进行参数传递
     * @param data 主要是data里的数据或者子表单中的数据
     * @param fieldAnalysisPoJo 此实体，主要是放入用户、部门等组织架构信息，以及团队等负责人，协同人等相关参数，请勿随意增加此实体的属性；
     * @return
     * @throws XbbException
     */
    Object getValue(FieldAttrEntity fieldAttrEntity, PaasFormDataEntity paasFormDataEntity, JSONObject data, FieldAnalysisPoJo fieldAnalysisPoJo) throws XbbException;
}
